// 省份数据类型
export interface ProvinceItem {
  createTime: string;
  dictCode: string;
  hasChildren: boolean;
  id: number;
  isDeleted: number;
  name: string;
  param: {};
  parentId: number;
  updateTime: string;
  value: string;
}

// 接口 城市数据类型
export interface CityType {
  id: number;
  createTime: string;
  updateTime: string;
  isDeleted: number;
  param: Param;
  parentId: number;
  name: string;
  value: string;
  dictCode: string;
  hasChildren: boolean;
}
interface Param {
}






// 医院列表的数据类型
export interface GetHospitalListTpye {
  content?: Content[];
  pageable?: Pageable;
  totalPages?: number;
  totalElements?: number;
  last?: boolean;
  first?: boolean;
  sort?: Sort;
  numberOfElements?: number;
  size?: number;
  number?: number;
  empty?: boolean;
}
export interface Pageable {
  sort: Sort;
  pageNumber: number;
  pageSize: number;
  offset: number;
  paged: boolean;
  unpaged: boolean;
}
export interface Sort {
  sorted: boolean;
  unsorted: boolean;
  empty: boolean;
}
export interface Content {
  id: string;
  createTime: string;
  updateTime: string;
  isDeleted: number;
  param: DortorParam;
  hoscode: string;
  hosname: string;
  hostype: string;
  provinceCode: string;
  cityCode: string;
  districtCode: string;
  address: string;
  logoData: string;
  intro: string;
  route: string;
  status: number;
  bookingRule: BookingRule;
}
export interface BookingRule {
  cycle: number;
  releaseTime: string;
  stopTime: string;
  quitDay: number;
  quitTime: string;
  rule: string[];
}
export interface DortorParam {
  hostypeString: string;
  fullAddress: string;
}



// page分页的数据类型
export interface PageType extends SearchParams {
  page: number;
  limit: number;
}

// 医院列表的参数可选
export interface SearchParams {
  hoscode?: string;
  hosname?: string;
  hostype?: string;
  provinceCode?: string;
  cityCode?: string;
  districtCode?: string;
  status?: number;
}


// ------------------------------

/**
 * 医生数据的结构
 */
export interface DoctorItem {
  /**
   * ID
   */
  id: string;
  /**
   * 创建时间
   */
  createTime: string;
  updateTime: string;
  isDeleted: number;
  param: DoctorParam;
  /**
   * 医院的编号
   */
  hoscode: string;
  /**
   * 科室的编号
   */
  depcode: string;
  /**
   * 职称
   */
  title: string;
  /**
   * 医生的姓名
   */
  docname: string;
  /**
   * 医生的专业技能
   */
  skill: string;
  /**
   * 日期
   */
  workDate: string;
  workTime: number;
  /**
   * 总共的号源数量
   */
  reservedNumber: number;
  /**
   * 可用的号源数量
   */
  availableNumber: number;
  /**
   * 金额
   */
  amount: number;
  /**
   * 状态
   */
  status: number;
  hosScheduleId: string;
}

export interface DoctorParam {
  /**
   * 星期
   */
  dayOfWeek: string;
  /**
   * 科室名称
   */
  depname: string;
  /**
   * 医院名称
   */
  hosname: string;
}

/**
 * 科室的结构
 */
export interface Department {
  depcode: string;
  depname: string;
  children: Department[] | null;
}

/**
 * 科室的复数
 */
export type Departments = Department[];

/**
 * 获取排班规则的参数结构
 */
export interface ReqGetScheduleParams {
  page: number;
  limit: number;
  hoscode: string;
  depcode: string;
}

/**
 * 排班规则响应结果的结构
 */
export interface ReqGetScheduleResponse {
  /**
   * 总数
   */
  total: number;
  /**
   * 排班数据的列表
   */
  bookingScheduleList: BookingScheduleList[];
  /**
   * 基础映射
   */
  baseMap: BaseMap;
}

export interface BaseMap {
  /**
   * 医院名称
   */
  hosname: string;
}

/**
 * 单条排班数据的结构
 */
export interface BookingScheduleList {
  /**
   * 日期
   */
  workDate: string;
  /**
   * 日期
   */
  workDateMd?: any;
  /**
   * 星期
   */
  dayOfWeek: string;
  /**
   * 医生数量
   */
  docCount: number;
  /**
   * 总号源数
   */
  reservedNumber: number;
  /**
   * 可用号源数
   */
  availableNumber: number;
  status?: any;
}

/**
 * 获取医生的参数结构
 */
export interface ReqGetDoctorParams {
  workDate: string;
  depcode: string;
  hoscode: string;
}


